<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>前后端交互</title>
</head>

<body>


    <script>
        function queryData(url) {
            var p = new Promise(function (resolve, reject) {
                var xhr = new XMLHttpRequest();

                xhr.onreadystatechange = function () {
                    if (xhr.readyState != 4) {
                        return;
                    }
                    if (xhr.readyState == 4 && xhr.status == 200) {
                        // 处理正常的情况
                        resolve(xhr.responseText)
                    } else {
                        // 处理异常情况
                        reject('服务器错误');
                    }
                }

                xhr.open('get', url)
                xhr.send(null);
            })
            return p;
        }

        // queryData('http://localhost:3000/data').then(function(data){
        //     console.log(data)
        // },function(err){
        //     console.log(err)
        // })
        //========================
        // 发送多个ajax请求并且保证顺序
        queryData('http://localhost:3000/data')
        .then(function(data){
            console.log(data)
            // 这里return的是一个新的promise对象, 下面then的也是这里返回的 promise对象
            return queryData('http://localhost:3000/data1');
        })
        // 这里的data是上一个promise对象的返回结果
        .then(function(data){
            console.log(data)
            return queryData('http://localhost:3000/data2');
        })
        .then(function(data){
            console.log(data)
        })


    </script>

</body>

</html>